package fr.eisti.ing1.projetgsiKlelifaRazavet.Main;

import fr.eisti.ing1.projetgsiKlelifaRazavet.DataManager.DataManager;
import fr.eisti.ing1.projetgsiKlelifaRazavet.Graphe.GrapheValuee;
import fr.eisti.ing1.projetgsiKlelifaRazavet.Objets.Personne;
import java.util.ArrayList;
/**
 * Classe de test
 * @author Razavet Mael, Klelifa Sarah
 * @version 1.0
 */
public class Main {

    /**
     * fonction qui gère les tests
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Personne quentin;
        Personne sarah;
        Personne fanny;
        Personne nga;
        Personne mael;
        Personne chelouah;
        fanny = null;
        quentin = null;
        sarah = null;
        mael = null;
        chelouah = null;
        nga = null;

        //test bdd
        System.out.println("Chargement des données");
        GrapheValuee<Personne> socialNetwork = DataManager.loadData("MaelSarah", "maelSarah", "localhost",1521);
        System.out.println("Réseaux social " + socialNetwork.toString());
        System.out.println(socialNetwork.getUtilisateurs());
        for (int i = 0; i < socialNetwork.getUtilisateurs().size(); i++) {
            if (socialNetwork.getUtilisateurs().get(i).getIdPersonne() == 5) {
                quentin = socialNetwork.getUtilisateurs().get(i);
            } else if (socialNetwork.getUtilisateurs().get(i).getIdPersonne() == 1) {
                sarah = socialNetwork.getUtilisateurs().get(i);
            } else if (socialNetwork.getUtilisateurs().get(i).getIdPersonne() == 6) {
                fanny = socialNetwork.getUtilisateurs().get(i);
            } else if (socialNetwork.getUtilisateurs().get(i).getIdPersonne() == 4) {
                nga = socialNetwork.getUtilisateurs().get(i);
            } else if (socialNetwork.getUtilisateurs().get(i).getIdPersonne() == 3) {
                chelouah = socialNetwork.getUtilisateurs().get(i);
            }else if (socialNetwork.getUtilisateurs().get(i).getIdPersonne() == 2) {
                mael = socialNetwork.getUtilisateurs().get(i);
            }
        }
        //affichage des personnes du réseau
        System.out.println(socialNetwork.getUtilisateurs());

        //diversification du réseau social
        socialNetwork.refuserAmiProposer(sarah, fanny);

        
        socialNetwork.proposerAmi(sarah, quentin);
        socialNetwork.proposerAmi(quentin, fanny);
        socialNetwork.accepterAmi(quentin, sarah);
        socialNetwork.accepterAmi(fanny, quentin);


        DataManager.synchronize();
        //recherche sur nom/prenom
        ArrayList<Personne> list;
        list = socialNetwork.rechercheParNomPrenom(null, "maelf");
        for (Personne p : list) {
            System.out.println("nom: " + p.toString());
        }
        //recherche sur parcours scolaire ou professionnel
        list=socialNetwork.rechercheParcoursScolaireOuProfessionnel(null, "toulouse", 2005);
        for(Personne p:list){
        System.out.println("parcours: "+p.toString());
        }
        //recherche sur centres interets
        list = socialNetwork.rechercheParCentreInteret(null, "gentleman");
        for (Personne p : list) {
            System.out.println("centreInteret: " + p.toString());
        }
        //recherche par ami
        ArrayList<Personne> a = socialNetwork.rechercheParAmi(nga, new ArrayList<Personne>(), 2);
        for (Personne p : a) {
            System.out.println("Personnes dans le réseau: " + p.toString());
        }
    }
}
